set(LLVM_OPTIONAL_SOURCES
  AffineAnalysis.cpp
  AffineStructures.cpp
  BufferAliasAnalysis.cpp
  CallGraph.cpp
  LinearTransform.cpp
  Liveness.cpp
  LoopAnalysis.cpp
  NestedMatcher.cpp
  NumberOfExecutions.cpp
  PresburgerSet.cpp
  SliceAnalysis.cpp
  Utils.cpp
  )

add_mlir_library(MLIRAnalysis
  BufferAliasAnalysis.cpp
  CallGraph.cpp
  Liveness.cpp
  NumberOfExecutions.cpp
  SliceAnalysis.cpp

  ADDITIONAL_HEADER_DIRS
  ${MLIR_MAIN_INCLUDE_DIR}/mlir/Analysis

  DEPENDS
  mlir-headers

  LINK_LIBS PUBLIC
  MLIRAffine
  MLIRCallInterfaces
  MLIRControlFlowInterfaces
  MLIRInferTypeOpInterface
  MLIRSCF
  )

add_mlir_library(MLIRLoopAnalysis
  AffineAnalysis.cpp
  AffineStructures.cpp
  LinearTransform.cpp
  LoopAnalysis.cpp
  NestedMatcher.cpp
  PresburgerSet.cpp
  Utils.cpp

  ADDITIONAL_HEADER_DIRS
  ${MLIR_MAIN_INCLUDE_DIR}/mlir/Analysis

  DEPENDS
  mlir-headers

  LINK_LIBS PUBLIC
  MLIRAffine
  MLIRCallInterfaces
  MLIRControlFlowInterfaces
  MLIRInferTypeOpInterface
  MLIRPresburger
  MLIRSCF
  )

add_subdirectory(Presburger)
